package es.nadalgoyo.frikiquest;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import es.nadalgoyo.frikiquest.action.ActionGuardar;
import es.nadalgoyo.frikiquest.control.TextButton;
import es.nadalgoyo.frikiquest.control.style.Fonts;
import es.nadalgoyo.frikiquest.dispatcher.GuardarDispatcher;
import es.nadalgoyo.frikiquest.dispatcher.InicioDispatcher;
import es.nadalgoyo.frikiquest.util.Constantes;
import es.nadalgoyo.frikiquest.util.Util;
import es.nadalgoyo.frikiquest.R;
import es.sergionadal.mvc.dispatcher.exception.DispatcherException;

public class TuPierdesActivity extends FrikiTrivialActivity {

	public static final String TIPO_PUNTOS = "tipoPuntos";

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.tupierdes);

		Bundle bundle = getIntent().getExtras();

		final String tipo = bundle.getString(TIPO_PUNTOS);

		int puntuacion = 0;

		if (bundle != null
				&& bundle.containsKey(Constantes.PUNTUACION_ACUMULADA))
			puntuacion = bundle.getInt(Constantes.PUNTUACION_ACUMULADA);

		snd = getSoundPlayerNewInstance(R.raw.forswo);
		snd.play();

		TextView texto = (TextView) findViewById(R.id.TxtPierdes);
		texto.setTypeface(Fonts.getStarWars(getAssets()));

		if (puntuacion > 0) {
			final TextButton puntos = (TextButton) findViewById(R.id.PuntosGuardar);
			puntos.setActivity(this);

			final Bundle bundleToSave = new Bundle();
			bundleToSave.putInt(ActionGuardar.PUNTOS, puntuacion);
			bundleToSave.putString(ActionGuardar.TIPO, tipo);
			puntos.inicializar();
			puntos.addOnClickListener(new TextButton.OnClickListener() {

				@Override
				public void onClick() {

					if (puntos.getTextEdit().getText().toString().trim().equals("")) {
						Util.showErrorMensaje(TuPierdesActivity.this,
								"Debes introducir tu nombre antes de guardar.",
								false);
					} else {
						bundleToSave.putString(ActionGuardar.NOMBRE, puntos
								.getTextEdit().getText().toString());

						GuardarDispatcher dispatcher = new GuardarDispatcher(
								TuPierdesActivity.this, bundleToSave,
								GuardarDispatcher.GUARDAR);

						try {
							dispatcher.dispatch();
						} catch (DispatcherException e) {
							e.printStackTrace();
							Util.showErrorMensaje(
									TuPierdesActivity.this,
									"No se ha podido guardar: "
											+ e.getMessage(), false);
						}
					}
				}
			});
		}

		TextView textoPuntos = (TextView) findViewById(R.id.TxtPuntosPierdes);
		textoPuntos.setTypeface(Fonts.getStarWars(getAssets()));
		textoPuntos.setText(getString(R.string.puntosfinales).concat(
				String.valueOf(puntuacion)));

		Button boton = (Button) findViewById(R.id.BtnMenu);
		boton.setTextAppearance(getBaseContext(), R.style.BotonNotPressed);
		boton.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				InicioDispatcher dispatcher = new InicioDispatcher(
						TuPierdesActivity.this, InicioDispatcher.MENU);
				try {
					dispatcher.dispatch();
				} catch (DispatcherException e) {
					e.printStackTrace();
					Util.showErrorMensaje(TuPierdesActivity.this,
							e.getMessage(), true);
				}
			}
		});
		boton.setTypeface(Fonts.getStarTrek(getAssets()));
		boton.setVisibility(puntuacion < 1 ? Button.VISIBLE : Button.INVISIBLE);
	}
}
